﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Zcu.PanelComposer.Interfaces
{
    /// <summary>
    /// Rozhrani pro vsechny moduly (stranky), ktere chceme zobrazovat v hlavnim okne.
    /// </summary>
    public interface IModule
    {
        /// <summary>
        /// Zdali ma byt modul skryt v menu.
        /// </summary>
        bool MenuVisible { set; get; }

        /// <summary>
        /// Stranka, ze ktere bylo zavolano presmerovani.
        /// </summary>
        PageNames SourcePage { get; set; }

        /// <summary>
        /// Nazev, ktery bude zobrazen v aplikaci.
        /// </summary>
        string DisplayName { get; set; }

        /// <summary>
        /// Nazev modulu. 
        /// Bude pouzit pro navigaci po aplikaci.
        /// </summary>
        PageNames ModuleName { get; }

        /// <summary>
        /// Poradi v menu.
        /// </summary>
        int Order { get; }

        /// <summary>
        /// Objekt, ktery je predavany pri navigaci.
        /// </summary>
        object Context { get; set; }

        /// <summary>
        /// Called when [reconstruct].
        /// </summary>
        void OnReconstruct();
    }
}
